1. Field of the Invention
This invention relates generally to data processing systems and, more particularly, to object oriented programming systems and processes.
2. Description of the Related Art
Computer programs have typically been developed using procedural programming techniques. Procedural programming techniques emphasize structuring the data processing procedures to which data values are subjected. Efforts to reduce long software development times and high software maintenance costs have resulted in structured programming techniques that attempt to reuse blocks of programming code. For example, tasks or processes that must be repeated can be written as system programming routines or program library functions. Program developers then provide an application program to accomplish a desired result using calls to the system routines and library functions.
System routines and library functions provide only a limited reduction in software development time and maintenance costs. Once a procedural application program is written, it is relatively difficult to incorporate new features or additional data types. There are many processes in an application program that cannot be easily extracted from program code and reused. Additional data types often cannot be inserted into procedural program code without extensive rewriting of the original program code. Thus, even if new features in a program can be implemented using processes similar to those already in the application, the programming for such processes must be largely duplicated, with slight modifications, to provide the new features. This increases program development time. Moreover, if such programs must operate with other applications, it can be difficult to ensure that the changes will interface properly.
Another problem confronting program developers is that of providing program versions capable of operating with the various platforms used by customers. The different platforms encompass different operating systems as well as different companion applications with which the application must interface. With respect to operating systems, for example, a program developer might have to write different versions for satisfactory operation under the xe2x80x9cWindows 95xe2x80x9d operating system by Microsoft Corp., the UNIX system, the xe2x80x9cMacintoshxe2x80x9d operating system by Apple Computer Corp., or the xe2x80x9cOS/2xe2x80x9d operating system by International Business Machines Corporation (IBM Corporation). In a similar fashion, a program developer might want to provide the ability to interface with application programs such as word processor programs, spreadsheet programs, and the like, meaning that the program developer must provide the ability to accept files (and produce files) in different file formats. Different platforms use different data formats and procedural operations, so program developers must provide different program versions or routines for each platform.
Object oriented programming (OOP) techniques encapsulate, or bind together, data and the methods that operate on them. This permits program development to more closely model real-world systems for problem solution and breaks up program development efforts into smaller, more manageable pieces. OOP programs are developed around object classes that have attributes, also called data values, and methods, also called functions. Although OOP techniques have done much to improve program development efficiency, such techniques still require a great degree of code generation on the part of application developers and limit program reuse among different classes.
OOP frameworks have been developed in an effort to further reduce program development costs. For example, U.S. Pat. No. 5,398,336 discloses an object oriented architecture for factory floor management; U.S. Pat. No. 5,787,425 discloses an object oriented data mining framework mechanism; U.S. Pat. No. 5,878,432 discloses an object oriented framework mechanism for source code repository; and U.S. Pat. No. 5,936,860 discloses an object oriented framework for warehouse control. A framework is a set of OOP classes that embodies a predetermined set of attributes and methods for providing a common group of behaviors. An application program developer utilizes the framework and builds upon it, adding subclasses and attributes and modifying methods depending on the problem to be solved. Such changes to the framework are typically referred to as framework extensions, and are made possible by the OOP notions of inheritance and polymorphism. The challenge confronting framework developers, then, is to arrive at a set of classes and methods that will best provide the desired problem solution and will accept the most likely framework extensions. Thus, the designer of a framework must carefully assess what framework users will most likely need in the way of classes and attributes.
One area in which there is a great need for application program development is in the chemical-process development decision-support domain. In particular, many businesses are aiming to computerize the functions of chemical-process development. Representative applications, for example, include computer-assisted definition, optimization, management, and execution of synthetic procedures for the production of chemical entities. Many company-specific features are needed to perform these functions, all of which are continually changing, so that program development and software maintenance of applications are critical. Thus, a great deal of cost and effort are devoted to developing and maintaining application programs that perform chemical-development decision-support functions.
From the discussion above, it should be apparent that there is a need for development tools that permits application program developers to more quickly develop and more easily maintain chemical-development decision-support applications. The present invention fulfills this need.
In accordance with the present invention, a reusable object oriented (00) framework for use with object oriented programming systems comprises a chemical-development decision-support shell that permits a framework adopter to use a set of chemical-process-development definition and a set of decision-support-type objects that provide chemical-process recording, characterization and reporting capability, and to then add framework extensions for specific processing features, thereby producing a chemical-process-development decision-support application. Such a decision support application assists the user in the recording, document management, characterization and optimization, and reporting of chemical processes. In this way, the chemical-process-development decision-support framework of the invention provides an 00 base on which application program developers can build to add specific data types and processing features they deem important.
The framework includes classes for which it is anticipated extension sub-classing with new attributes and methods will occur. An application program developer can customize the extension classes to meet the needs of application users and create all user interfaces with the application program, permitting the developer to more quickly complete program development and more easily perform software maintenance. The end-user interface establishes a means for the end-user to communicate with the application program to receive, process, and view data. The framework frees the program developer to concentrate on application program features, which can easily be implemented by extending the 00 classes and methods of the 00 framework. The framework thereby provides a base from which a variety of chemical-process-development decision-support systems can be quickly and efficiently produced.
The framework includes object oriented classes that specify object data attributes and methods. The framework adopter is free to incorporate extensions to the framework to provide a unique suite of functions and operations, resulting in the production of an application that is then utilized by an end user. For example, a single object provides a data object location for maintaining and accessing properties, methodologies, and attributes that are defined for the chemical process undergoing development. Using OOP principles, the framework adopter can add chemical process attributes not present in the framework to support chemical process types desired by a customers. In this way, the framework adopter maximizes the exploitation of program commonality and the reuse of programming efforts, thereby reducing program development time and software maintenance costs.
Other features and advantages of the present invention should be apparent from the following description of the preferred embodiment, which illustrates, by way of example, the principles of the invention.